<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
<ui:composition template="../templates/layout.xhtml">
<ui:define name="title">Tabla Usuarios</ui:define>
<ui:define name="content">
    <p:spacer height="5px"/>
    <p:panel>
        <h:outputText value="Tabla Usuarios" style="font-size:16px;"/>
    </p:panel>
    <p:spacer height="5px"/>
    <h:form id="frmPrincipal">
        <!-- Panel de búsqueda-->
        <p:panel id="panelBusqueda" header="Búsqueda de Usuarios">
            <h:panelGrid id="gridBusqueda" columns="9">
                <p:spacer width="13px"/>
                <h:outputLabel for="inputDescripcion" value="Usuario"/>
                <p:inputText id="inputDescripcion" value="#{maestroUsuarioJsfBean.filtroBusqueda.login}"
                             size="15" maxlength="10"/>

                <h:outputLabel for="inputCodigo" value="Nombre Personal"/>
                <p:inputText id="inputCodigo" value="#{maestroUsuarioJsfBean.filtroBusqueda.nombreCompleto}"
                             size="25" maxlength="100"/>



                    <h:outputLabel for="cmbGrupoEmpresarial" value="Grupo Empresarial"/>


                    <p:selectOneMenu id="cmbGrupoEmpresarial" converter="#{managerGrupoDTOConverter}"
                                     value="#{maestroUsuarioJsfBean.filtroGrupo}"
                                     style="width:180px;">
                        <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                        <f:selectItems value="#{maestroUsuarioJsfBean.cmbGrupoEmpresarial}"
                                       var="grupoSelect"
                                       itemLabel="#{grupoSelect.nombre}"
                                       itemValue="#{grupoSelect}"/>
                    </p:selectOneMenu>


            </h:panelGrid>
            <p:spacer height="3px"/>

            <p:spacer height="3px"/>
            <h:panelGrid id="gridBusqueda3" columns="3">
                <p:commandButton ajax="true" value="Buscar" id="btnBuscar"  icon="ui-icon-search"
                                 actionListener="#{maestroUsuarioJsfBean.findAction}"
                                 update=":frmPrincipal:panelResultados :messages"/>
                <p:commandButton ajax="true" value="Limpiar" id="btnLimpiar"  icon="ui-icon-refresh"
                                 actionListener="#{maestroUsuarioJsfBean.cleanAction}"
                                 update=":frmPrincipal:panelResultados :frmPrincipal:panelBusqueda :messages"/>
            </h:panelGrid>
        </p:panel>

        <p:spacer height="10px"/>

        <!-- Panel de resultados (donde está la tabla)  -->
        <p:panel id="panelResultados" header="Resultados">
            <p:toolbar >

                <p:toolbarGroup align="left">
                    <p:commandButton id="linkNuevo" value="Nuevo" ajax="true"
                                     actionListener="#{maestroUsuarioJsfBean.showNewDialog}"
                                     oncomplete="wvCreateDialog.show()" update=":createDialog"/>
                    <p:commandButton id="editButton" value="Editar"
                                     actionListener="#{maestroUsuarioJsfBean.showEditDialog}"
                                     update=":createDialog :messages">
                        <f:attribute name="tableName" value="registros"/>
                        <f:attribute name="dialogName" value="wvCreateDialog"/>
                    </p:commandButton>
                    <p:commandButton id="cmdEliminar" value="Eliminar"
                                     actionListener="#{maestroUsuarioJsfBean.showDeleteDialog}"
                                     update=":messages">
                        <f:attribute name="tableName" value="registros"/>
                        <f:attribute name="dialogName" value="wvDeleteDialog"/>
                    </p:commandButton>
                </p:toolbarGroup>
            </p:toolbar>


            <p:dataTable id="registros" value="#{maestroUsuarioJsfBean.registros}"
                         var="registro" rowKey="#{registro.usuarioId}" paginator="true" rows="25"
                         selection="#{maestroUsuarioJsfBean.nuevoRegistro}"
                         selectionMode="single"
                         paginatorPosition="bottom"  emptyMessage="No existen registros"
                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                         rowsPerPageTemplate="5,10,25,50">
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Grupo Empresarial"/>
                    </f:facet>
                    <h:outputText value="#{registro.grupoEmpresarialNombre}"/>
                </p:column>
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Nombre"/>
                    </f:facet>
                    <h:outputText value="#{registro.nombreCompleto}"/>
                </p:column>
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Usuario"/>
                    </f:facet>
                    <h:outputText value="#{registro.login}"/>
                </p:column>
                <p:column style="text-align: left">
                    <f:facet name="header">
                        <h:outputText value="Tipo"/>
                    </f:facet>
                    <h:outputText value="#{registro.tipoUsuario}"/>
                </p:column>
                <p:column style="text-align: left;width: 80px">
                    <f:facet name="header">
                        <h:outputText value="Creado Por"/>
                    </f:facet>
                    <h:outputText value="#{registro.creadoPor}"/>
                </p:column>
                <p:column style="text-align: left;width: 80px">
                    <f:facet name="header">
                        <h:outputText value="Fecha Creación"/>
                    </f:facet>
                    <h:outputText value="#{registro.fechaCreacion}">
                        <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Lima" type="both"/>
                    </h:outputText>
                </p:column>
            </p:dataTable>
        </p:panel>
    </h:form>
</ui:define>

<ui:define name="modal">
    <p:dialog closeOnEscape="true" id="createDialog" header="Nuevo Usuario" modal="true"  onShow="upperInput();"
              widgetVar="wvCreateDialog" resizable="false" showEffect="fade" hideEffect="fade">

        <p:ajax event="close" update=":frmPrincipal:panelResultados :createDialog"
                listener="#{maestroUsuarioJsfBean.handleDialogClose}"/>

        <p:panel id="NuevoRegistro">
            <h:form id="frmNuevoRegistro">
                <h:panelGrid id="gridBusquedaDialog" columns="3">


                    <h:outputLabel for="inputCodigo" value="Nombre Personal"/>
                    <p:inputText id="inputCodigo" value="#{maestroUsuarioJsfBean.nuevoRegistro.nombreCompleto}"
                                 size="20" maxlength="100"  required="true" requiredMessage="*" style="width: 200px" />
                    <p:message for="inputCodigo" display="text"/>

                    <h:outputLabel for="inputLogin" value="Usuario"/>
                    <p:inputText id="inputLogin" value="#{maestroUsuarioJsfBean.nuevoRegistro.login}"
                                 required="true" requiredMessage="*"
                                 size="10" maxlength="15" />
                    <p:message for="inputLogin" display="text"/>

                    <h:outputLabel for="inputPassword" value="Password"/>
                    <p:password  id="inputPassword" value="#{maestroUsuarioJsfBean.nuevoRegistro.password}"
                                 size="10" maxlength="15" feedback="false"  required="true" requiredMessage="*"/>
                    <p:message for="inputPassword" display="text"/>

                    <h:outputLabel for="inputTipo" value="Tipo Usuario"/>
                    <p:selectOneMenu id="inputTipo" value="#{maestroUsuarioJsfBean.nuevoRegistro.tipoUsuario}" effect="fade"
                                     >
                        <f:selectItem itemLabel="Seleccione" itemValue="" />
                        <f:selectItems value="#{maestroUsuarioJsfBean.allTipoUsuario}"  var="tipoSelect"
                                       itemLabel="#{tipoSelect.name}"
                                       itemValue="#{tipoSelect}"/>
                        <p:ajax event="change" update=":frmNuevoRegistro:cmbGrupoEmpresarialUsuario :messages" process="@this"
                                listener="#{maestroUsuarioJsfBean.onSelectTipoUsuario}"/>
                    </p:selectOneMenu>
                    <p:message for="inputTipo" display="text"/>


                    <h:outputLabel for="cmbGrupoEmpresarialUsuario" value="Grupo Empresarial"/>


                    <p:selectOneMenu id="cmbGrupoEmpresarialUsuario" converter="#{managerGrupoDTOConverter}"

                                     value="#{maestroUsuarioJsfBean.nuevoGrupoEmpresarial}"
                                     style="width:180px;">
                        <f:selectItem itemLabel="Seleccione" itemValue="" noSelectionOption="true"/>
                        <f:selectItems value="#{maestroUsuarioJsfBean.cmbGrupoEmpresarial}"
                                       var="grupoSelect"
                                       itemLabel="#{grupoSelect.nombre}"
                                       itemValue="#{grupoSelect}"/>
                    </p:selectOneMenu>
                    <p:message for="cmbGrupoEmpresarialUsuario" display="text"/>

                    <h:outputLabel for="cmbEstado" value="Estado"/>
                    <p:selectOneMenu id="cmbEstado" value="#{maestroUsuarioJsfBean.nuevoRegistro.estado}" effect="fade"
                           required="true" requiredMessage="*" >
                        <f:selectItems value="#{maestroUsuarioJsfBean.allEstado}"
                                       var="estadoSelect" itemLabel="#{estadoSelect.name}"
                                       itemValue="#{estadoSelect}"/>
                    </p:selectOneMenu>
                    <p:message for="cmbEstado" display="text"/>
                </h:panelGrid>
                <p:spacer height="3px"/>
                <h:panelGrid id="gridBusqueda3Dialog" columns="2" styleClass="centered">
                    <p:commandButton ajax="true" value="Guardar" id="btnGuardar"
                                     actionListener="#{maestroUsuarioJsfBean.persistAction}"
                                     update=":frmPrincipal:panelResultados :messages :NuevoRegistro">
                        <f:attribute name="dialogName" value="wvCreateDialog"/>
                    </p:commandButton>
                    <p:commandButton ajax="true" value="Cancelar" id="btnCancelar" onclick="wvCreateDialog.hide()"
                                     type="button"
                                     immediate="true" process="@none"/>
                </h:panelGrid>
            </h:form>
        </p:panel>
    </p:dialog>
    <ui:decorate template="/pages/ui/uiDelete.xhtml">
        <ui:param name="jsfBean" value="#{maestroUsuarioJsfBean}"/>
        <ui:param name="updateExtra" value=""/>
    </ui:decorate>
</ui:define>
</ui:composition>
</html>